﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MVC4WPF.Automation.Data
{
    /// <summary>
    /// Holds constants related to MVC4WPF that are used throughout the automation process.
    /// </summary>
    public static class MVC4WPFConstants
    {
        /// <summary>
        /// The file name suffix for the xaml file used in views.
        /// </summary>
        public const string ViewXamlNameSuffix = "xaml";

        /// <summary>
        /// The file name suffix for the view code behind class.
        /// </summary>
        public const string ViewXamlClassNameSuffix = "xaml.cs";

        /// <summary>
        /// The file name suffix for the view contract.
        /// </summary>
        public const string ViewContractClassNameSuffix = "contract.xaml.cs";

        /// <summary>
        /// The file name suffix for the controller class.
        /// </summary>
        public const string ControllerClassNameSuffix = "cs";

        /// <summary>
        /// The file name suffix for the contract of the controller class.
        /// </summary>
        public const string ControllerContractClassNameSuffix = "contract.cs";

        /// <summary>
        /// The base name for all MVC4WPF property bags.
        /// </summary>
        public const string PropertyBagBaseName = "PropertyBagBase";

        /// <summary>
        /// The file name suffix for the property bag.
        /// </summary>
        public const string PropertyBagClassNameSuffix = "cs";

        /// <summary>
        /// The file name suffix for an interface.
        /// </summary>
        public const string InterfaceNameSuffix = "cs";

        /// <summary>
        /// The generic interface name for the view property bag.
        /// </summary>
        public const string ViewPropertyBagInterfaceName = "IViewPropertyBag";

        /// <summary>
        /// The generic interface name for the controller property bag.
        /// </summary>
        public const string ControllerPropertyBagInterfaceName = "IControllerPropertyBag";

        /// <summary>
        /// The generic interface name for the model property bag.
        /// </summary>
        public const string ModelPropertyBagInterfaceName = "IModelPropertyBag";

        /// <summary>
        /// The generic interface name for the controller model contract;
        /// </summary>
        public const string ControllerModelContractInterfaceName = "IWPFControllerModel";
    }
}
